package demo.icanci.pattern.eventmode;

import java.util.ArrayList;
import java.util.List;

/**
 * @author icanci
 * @date Created in 2021/02/18 23:25
 * @version 1.0
 */
public class EventSource {
    private List<EventListener> listeners = new ArrayList<>();

    /**
     * 注册事件
     * @param eventListener 需要注册的事件
     */
    public void register(EventListener eventListener) {
        listeners.add(eventListener);
    }

    /**
     * 发布事件
     * @param event 需要发布的事件
     */
    public void publishEvent(Event event) {
        for (EventListener listener : listeners) {
            listener.processEvent(event);
        }
    }
}
